Software testing is one of a crucial phase in a software development life cycle. The software testing is performed to compare actual and expected results produced by executing a software code. One of a type of the software testing is a unit testing, in which, a smallest testable part i.e., unit of source code is tested. For performing the unit testing, a software developer or a tester has to perform a separate task of writing test codes or test cases. These test codes or test cases are written for each unit of source code in different combinations to adequately cover the possible aspects for the testing.
The task of writing the test codes or test cases is a time-consuming task for the software developers/testers. Apart from the time-consumption, another issue is accuracy of the test codes or the test cases. Accuracy in the sense that all the possible combination of positive and negative test cases should be covered adequately. The issues of time-consumption and the accuracy increases not only with the length of the software code to be tested, but also based on the complexity of the software code.